package hard.区间问题.用最少数量的箭引爆气球;

import java.util.Arrays;

/**
 * @author zhengTao
 * @version 1.0
 * @description: 用最少数量的箭引爆气球
 * @date 2022/11/21 12:29
 */
public class Demo452 {
    public int findMinArrowShots(int[][] points) {
        //根据第一个数字进行升序排序
        Arrays.sort(points,(s0,s1)->Integer.compare(s0[0],s1[0]));

        //至少一发箭
        int count=1;
        for (int i = 1; i < points.length; i++) {
            //判断是否和前一个有重叠部分
            //1，没有重叠
            if((points[i][0]>0&&points[i-1][1]<0)||points[i][0]>points[i-1][1]){
                count++;
            }else {
                //有重叠部分，箭的数量不用加1，修改这个数第二个值的大小
                points[i][1]=Math.min(points[i][1],points[i-1][1]);
            }
        }
         return count;
    }
}
